/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Practica2;

/**
 *
 * @author UNSAAC30X
 */
import java.util.Map;
 

 

 

 
public class Catalogo implements  java.io.Serializable {
 
    private String archivoCatalogo;
 
    private java.util.Map<String, EntradaCatalogo> entradas;
 
    private int numeroDeTablas;
 

 
    public Map<String, EntradaCatalogo> getEntradas() {
 
        return entradas;
 
    }
 

 
    public Catalogo(String archivoCatalogo) {
 
        this.archivoCatalogo = archivoCatalogo;
 
        entradas = new java.util.Hashtable<String, EntradaCatalogo>();
 
    }
 

 
    public void crearNuevaEntrada( EntradaCatalogo entrada) throws IllegalArgumentException {
 
        if (!existeTabla(entrada.getNombreTabla())){
 
            entradas.put(entrada.getNombreTabla(), entrada);
 
            numeroDeTablas++;
 
        }
 
        else{
 
            throw new IllegalArgumentException("Tabla: " + entrada.getNombreTabla() + " ya existe." );
 
        }
 
    }
 

 
    public int getNumeroDeTablas() {
 
        return numeroDeTablas;
 
    }
 
    protected boolean existeTabla(String nombreTabla){
 
        return  (entradas.get(nombreTabla) != null);
 
    }
 
    ////metodos de mi
 
    public void ActualizarEntrada(EntradaCatalogo entrada)throws IllegalArgumentException {
 
        if (existeTabla(entrada.getNombreTabla())){
 
            entradas.remove(entrada.getNombreTabla());
 
            entradas.put(entrada.getNombreTabla(), entrada);
 
        }
 
        else{
 
            throw new IllegalArgumentException("Tabla: " + entrada.getNombreTabla() + " no se puede actualizar." );
 
        }
 
    }
 
    public void EliminarEntrada(EntradaCatalogo entrada)throws IllegalArgumentException {
 
        if (existeTabla(entrada.getNombreTabla())){
 
            entradas.remove(entrada.getNombreTabla());
 
            numeroDeTablas--;
 
        }
 
        else{
 
            throw new IllegalArgumentException("Tabla: " + entrada.getNombreTabla() + " no se puede eliminar." );
 
        }
 
    }
 
    
 
    
 
    @Override
 
    public String toString() {
 
        return "Catalogo: " + numeroDeTablas+  " tablas. Entradas: \n"+ "\t" + entradas.toString();
 
    }
 
    
 
    
 
    
 
    
 
}
 

